package luj.game.robot.internal.instance.boss.command.execute.invoke;

import luj.game.robot.api.action.RobotBossCommand;
import luj.game.robot.internal.instance.boss.state.BossState;

final class CBossImpl implements RobotBossCommand.Boss {

  @Override
  public void putData(Object data) {
    String type = data.getClass().getName();
    _bossState.getDataMap().put(type, data);
  }

  @SuppressWarnings("unchecked")
  @Override
  public <D> D getData(Class<D> dataType) {
    String type = dataType.getName();
    return (D) _bossState.getDataMap().get(type);
  }

  BossState _bossState;
}
